<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Source</name>
    </assembly>
    <members>
        <member name="T:System.Reactive.EventStream">
            <summary>
            Provides the implementation for a reactive extensions event stream, 
            allowing trending and analysis queries to be performed in real-time 
            over the events pushed through the stream.
            </summary>
            <nuget id="netfx-System.Reactive.EventStream.Implementation"/>
            <remarks>
            The <see cref="T:System.Reactive.IEventStream"/> interface implemented by this class is 
            provided by the nuget <c>netfx-System.Reactive.EventStream.Interfaces</c>, 
            which must be installed in the same project or one referenced by it. 
            </remarks>
            <devdoc>
            The surprisingly simple implementation from the blog post http://kzu.to/srVn3P 
            was surprisingly limiting too :). No support for covariant subscriptions, 
            subscriptions to interfaces implemented by the concrete events, etc. 
            (i.e. the EventPattern&lt;TEventArgs&gt; from Rx wouldn't work).
            </devdoc>
            <nuget id="netfx-System.Reactive.EventStream"/>
        </member>
        <member name="T:System.Reactive.IEventStream">
            <summary>
            Provides an observable stream of events that 
            can be used for analysis or real-time handling.
            </summary>
            <nuget id="netfx-System.Reactive.EventStream.Interfaces" />
        </member>
        <member name="M:System.Reactive.IEventStream.Push``1(``0)">
            <summary>
            Pushes an event to the stream, causing any 
            subscriber to be invoked if appropriate.
            </summary>
        </member>
        <member name="M:System.Reactive.IEventStream.Push``1(System.Reactive.IEventPattern{``0})">
            <summary>
            Pushes an event to the stream with its 
            sender information, causing any subscriber 
            to be invoked if appropriate.
            </summary>
        </member>
        <member name="M:System.Reactive.IEventStream.Of``1">
            <summary>
            Observes the events of a given type.
            </summary>
        </member>
        <member name="M:System.Reactive.EventStream.Push``1(``0)">
            <summary>
            Pushes an event to the stream, causing any  
            subscriber to be invoked if appropriate.
            </summary>
            <remarks>
            This overload will not invoke subscribers for the 
            same <typeparamref name="TEvent"/> but as an 
            <see cref="T:System.Reactive.IEventPattern`1"/>, because no 
            sender information is provided and therefore 
            is not available.
            </remarks>
        </member>
        <member name="M:System.Reactive.EventStream.Push``1(System.Reactive.IEventPattern{``0})">
            <summary>
            Pushes an event to the stream, causing any  
            subscriber to be invoked if appropriate, including 
            subscribers for just <typeparamref name="TEvent"/> 
            and not only <see cref="T:System.Reactive.IEventPattern`1"/>.
            </summary>
        </member>
        <member name="M:System.Reactive.EventStream.Of``1">
            <summary>
            Observes the events of a given type.
            </summary>
        </member>
        <member name="T:DictionaryFind">
            <summary>
            Finds a value by key in the dictionary, or returns the default value for 
            TValue. Just like Linq FirstOrDefault().
            </summary>
            <nuget id="netfx-System.Collections.Generic.DictionaryFind" />
        </member>
        <member name="M:DictionaryFind.Find``2(System.Collections.Generic.IDictionary{``0,``1},``0)">
            <summary>
            Finds a value by key in the dictionary, or returns the default value for 
            TValue. Just like Linq FirstOrDefault().
            </summary>
            <param name="dictionary" this="true">The object this extension method applies to.</param>
            <param name="key">The key of the value to find.</param>
        </member>
        <member name="T:Guard">
            <summary>
            Common guard class for argument validation.
            </summary>
            <nuget id="netfx-Guard" />
        </member>
        <member name="M:Guard.NotNull``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)">
            <summary>
            Ensures the given <paramref name="value"/> is not null.
            Throws <see cref="T:System.ArgumentNullException"/> otherwise.
            </summary>
        </member>
        <member name="M:Guard.NotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.String}},System.String)">
            <summary>
            Ensures the given string <paramref name="value"/> is not null or empty.
            Throws <see cref="T:System.ArgumentNullException"/> in the first case, or 
            <see cref="T:System.ArgumentException"/> in the latter.
            </summary>
        </member>
        <member name="T:System.Reactive.EventPattern">
            <summary>
            Factory class for <see cref="T:System.Reactive.IEventPattern`1"/>.
            </summary>
            <nuget id="netfx-System.Reactive.EventStream.Interfaces"/>
        </member>
        <member name="M:System.Reactive.EventPattern.Create``1(System.Object,``0)">
            <summary>
            Creates an event pattern instance for the given sender and event argument value.
            </summary>
        </member>
        <member name="T:System.Reactive.IEventPattern`1">
            <summary>
            Represents the Sender and EventArg values of a .NET event.
            </summary>
            <remarks>
            Exposes a very similar API to Rx <c>EventPattern&lt;TEventArgs&gt;</c> 
            but in a covariant-capable interface, so that subscribers can still 
            subscribe to the pattern but with a more generic base type or 
            interface implemented by the <typeparamref name="TEvent"/>. 
            It also removes the restriction that the argument value has to 
            derive from <see cref="P:System.Reactive.IEventPattern`1.EventArgs"/>.
            </remarks>
            <nuget id="netfx-System.Reactive.EventStream.Interfaces"/>
        </member>
        <member name="P:System.Reactive.IEventPattern`1.EventArgs">
            <summary>
            Gets the event arguments value of the event.
            </summary>
        </member>
        <member name="P:System.Reactive.IEventPattern`1.Sender">
            <summary>
            Gets the sender value of the event.
            </summary>
        </member>
        <member name="T:System.Reactive.IEventStreamExtensions">
            <summary>
            Provides usability overloads to <see cref="T:System.Reactive.IEventStream"/>.
            </summary>
        </member>
        <member name="M:System.Reactive.IEventStreamExtensions.Push``1(System.Reactive.IEventStream,System.Object,``0)">
            <summary>
            Pushes the given event with the sender information in the 
            form of an <see cref="T:System.Reactive.IEventPattern`1"/>.
            </summary>
            <typeparam name="TEvent">The type of the event, typically inferred from the passed-in argument.</typeparam>
            <param name="stream">The event stream to push to.</param>
            <param name="sender">The sender of the event.</param>
            <param name="event">The event data.</param>
        </member>
    </members>
</doc>
